<?php
	/**
	 * This is a MetaControl class, providing a QForm or QPanel access to event handlers
	 * and QControls to perform the Create, Edit, and Delete functionality
	 * of the Assetsauditlog class.  This code-generated class
	 * contains all the basic elements to help a QPanel or QForm display an HTML form that can
	 * manipulate a single Assetsauditlog object.
	 *
	 * To take advantage of some (or all) of these control objects, you
	 * must create a new QForm or QPanel which instantiates a AssetsauditlogMetaControl
	 * class.
	 *
	 * Any and all changes to this file will be overwritten with any subsequent
	 * code re-generation.
	 * 
	 * @package My Application
	 * @subpackage MetaControls
	 * property-read Assetsauditlog $Assetsauditlog the actual Assetsauditlog data class being edited
	 * property QLabel $IdControl
	 * property-read QLabel $IdLabel
	 * property QTextBox $AsinControl
	 * property-read QLabel $AsinLabel
	 * property QTextBox $EmailControl
	 * property-read QLabel $EmailLabel
	 * property QDateTimePicker $TakenDateControl
	 * property-read QLabel $TakenDateLabel
	 * property QDateTimePicker $ActualReturnDateControl
	 * property-read QLabel $ActualReturnDateLabel
	 * property QDateTimePicker $RealReturnDateControl
	 * property-read QLabel $RealReturnDateLabel
	 * property QTextBox $FullNameControl
	 * property-read QLabel $FullNameLabel
	 * property QTextBox $TitleControl
	 * property-read QLabel $TitleLabel
	 * property QTextBox $OwnerControl
	 * property-read QLabel $OwnerLabel
	 * property-read string $TitleVerb a verb indicating whether or not this is being edited or created
	 * property-read boolean $EditMode a boolean indicating whether or not this is being edited or created
	 */

	class AssetsauditlogMetaControlGen extends QBaseClass {
		// General Variables
		protected $objAssetsauditlog;
		protected $objParentObject;
		protected $strTitleVerb;
		protected $blnEditMode;

		// Controls that allow the editing of Assetsauditlog's individual data fields
		protected $lblId;
		protected $txtAsin;
		protected $txtEmail;
		protected $calTakenDate;
		protected $calActualReturnDate;
		protected $calRealReturnDate;
		protected $txtFullName;
		protected $txtTitle;
		protected $txtOwner;

		// Controls that allow the viewing of Assetsauditlog's individual data fields
		protected $lblAsin;
		protected $lblEmail;
		protected $lblTakenDate;
		protected $lblActualReturnDate;
		protected $lblRealReturnDate;
		protected $lblFullName;
		protected $lblTitle;
		protected $lblOwner;

		// QListBox Controls (if applicable) to edit Unique ReverseReferences and ManyToMany References

		// QLabel Controls (if applicable) to view Unique ReverseReferences and ManyToMany References


		/**
		 * Main constructor.  Constructor OR static create methods are designed to be called in either
		 * a parent QPanel or the main QForm when wanting to create a
		 * AssetsauditlogMetaControl to edit a single Assetsauditlog object within the
		 * QPanel or QForm.
		 *
		 * This constructor takes in a single Assetsauditlog object, while any of the static
		 * create methods below can be used to construct based off of individual PK ID(s).
		 *
		 * @param mixed $objParentObject QForm or QPanel which will be using this AssetsauditlogMetaControl
		 * @param Assetsauditlog $objAssetsauditlog new or existing Assetsauditlog object
		 */
		 public function __construct($objParentObject, Assetsauditlog $objAssetsauditlog) {
			// Setup Parent Object (e.g. QForm or QPanel which will be using this AssetsauditlogMetaControl)
			$this->objParentObject = $objParentObject;

			// Setup linked Assetsauditlog object
			$this->objAssetsauditlog = $objAssetsauditlog;

			// Figure out if we're Editing or Creating New
			if ($this->objAssetsauditlog->__Restored) {
				$this->strTitleVerb = QApplication::Translate('Edit');
				$this->blnEditMode = true;
			} else {
				$this->strTitleVerb = QApplication::Translate('Create');
				$this->blnEditMode = false;
			}
		 }

		/**
		 * Static Helper Method to Create using PK arguments
		 * You must pass in the PK arguments on an object to load, or leave it blank to create a new one.
		 * If you want to load via QueryString or PathInfo, use the CreateFromQueryString or CreateFromPathInfo
		 * static helper methods.  Finally, specify a CreateType to define whether or not we are only allowed to 
		 * edit, or if we are also allowed to create a new one, etc.
		 * 
		 * @param mixed $objParentObject QForm or QPanel which will be using this AssetsauditlogMetaControl
		 * @param integer $intId primary key value
		 * @param QMetaControlCreateType $intCreateType rules governing Assetsauditlog object creation - defaults to CreateOrEdit
 		 * @return AssetsauditlogMetaControl
		 */
		public static function Create($objParentObject, $intId = null, $intCreateType = QMetaControlCreateType::CreateOrEdit) {
			// Attempt to Load from PK Arguments
			if (strlen($intId)) {
				$objAssetsauditlog = Assetsauditlog::Load($intId);

				// Assetsauditlog was found -- return it!
				if ($objAssetsauditlog)
					return new AssetsauditlogMetaControl($objParentObject, $objAssetsauditlog);

				// If CreateOnRecordNotFound not specified, throw an exception
				else if ($intCreateType != QMetaControlCreateType::CreateOnRecordNotFound)
					throw new QCallerException('Could not find a Assetsauditlog object with PK arguments: ' . $intId);

			// If EditOnly is specified, throw an exception
			} else if ($intCreateType == QMetaControlCreateType::EditOnly)
				throw new QCallerException('No PK arguments specified');

			// If we are here, then we need to create a new record
			return new AssetsauditlogMetaControl($objParentObject, new Assetsauditlog());
		}

		/**
		 * Static Helper Method to Create using PathInfo arguments
		 *
		 * @param mixed $objParentObject QForm or QPanel which will be using this AssetsauditlogMetaControl
		 * @param QMetaControlCreateType $intCreateType rules governing Assetsauditlog object creation - defaults to CreateOrEdit
		 * @return AssetsauditlogMetaControl
		 */
		public static function CreateFromPathInfo($objParentObject, $intCreateType = QMetaControlCreateType::CreateOrEdit) {
			$intId = QApplication::PathInfo(0);
			return AssetsauditlogMetaControl::Create($objParentObject, $intId, $intCreateType);
		}

		/**
		 * Static Helper Method to Create using QueryString arguments
		 *
		 * @param mixed $objParentObject QForm or QPanel which will be using this AssetsauditlogMetaControl
		 * @param QMetaControlCreateType $intCreateType rules governing Assetsauditlog object creation - defaults to CreateOrEdit
		 * @return AssetsauditlogMetaControl
		 */
		public static function CreateFromQueryString($objParentObject, $intCreateType = QMetaControlCreateType::CreateOrEdit) {
			$intId = QApplication::QueryString('intId');
			return AssetsauditlogMetaControl::Create($objParentObject, $intId, $intCreateType);
		}



		///////////////////////////////////////////////
		// PUBLIC CREATE and REFRESH METHODS
		///////////////////////////////////////////////

		/**
		 * Create and setup QLabel lblId
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblId_Create($strControlId = null) {
			$this->lblId = new QLabel($this->objParentObject, $strControlId);
			$this->lblId->Name = QApplication::Translate('Id');
			if ($this->blnEditMode)
				$this->lblId->Text = $this->objAssetsauditlog->Id;
			else
				$this->lblId->Text = 'N/A';
			return $this->lblId;
		}

		/**
		 * Create and setup QTextBox txtAsin
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtAsin_Create($strControlId = null) {
			$this->txtAsin = new QTextBox($this->objParentObject, $strControlId);
			$this->txtAsin->Name = QApplication::Translate('Asin');
			$this->txtAsin->Text = $this->objAssetsauditlog->Asin;
			$this->txtAsin->Required = true;
			$this->txtAsin->MaxLength = Assetsauditlog::AsinMaxLength;
			return $this->txtAsin;
		}

		/**
		 * Create and setup QLabel lblAsin
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblAsin_Create($strControlId = null) {
			$this->lblAsin = new QLabel($this->objParentObject, $strControlId);
			$this->lblAsin->Name = QApplication::Translate('Asin');
			$this->lblAsin->Text = $this->objAssetsauditlog->Asin;
			$this->lblAsin->Required = true;
			return $this->lblAsin;
		}

		/**
		 * Create and setup QTextBox txtEmail
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtEmail_Create($strControlId = null) {
			$this->txtEmail = new QTextBox($this->objParentObject, $strControlId);
			$this->txtEmail->Name = QApplication::Translate('Email');
			$this->txtEmail->Text = $this->objAssetsauditlog->Email;
			$this->txtEmail->TextMode = QTextMode::MultiLine;
			return $this->txtEmail;
		}

		/**
		 * Create and setup QLabel lblEmail
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblEmail_Create($strControlId = null) {
			$this->lblEmail = new QLabel($this->objParentObject, $strControlId);
			$this->lblEmail->Name = QApplication::Translate('Email');
			$this->lblEmail->Text = $this->objAssetsauditlog->Email;
			return $this->lblEmail;
		}

		/**
		 * Create and setup QDateTimePicker calTakenDate
		 * @param string $strControlId optional ControlId to use
		 * @return QDateTimePicker
		 */
		public function calTakenDate_Create($strControlId = null) {
			$this->calTakenDate = new QDateTimePicker($this->objParentObject, $strControlId);
			$this->calTakenDate->Name = QApplication::Translate('Taken Date');
			$this->calTakenDate->DateTime = $this->objAssetsauditlog->TakenDate;
			$this->calTakenDate->DateTimePickerType = QDateTimePickerType::Date;
			return $this->calTakenDate;
		}

		/**
		 * Create and setup QLabel lblTakenDate
		 * @param string $strControlId optional ControlId to use
		 * @param string $strDateTimeFormat optional DateTimeFormat to use
		 * @return QLabel
		 */
		public function lblTakenDate_Create($strControlId = null, $strDateTimeFormat = null) {
			$this->lblTakenDate = new QLabel($this->objParentObject, $strControlId);
			$this->lblTakenDate->Name = QApplication::Translate('Taken Date');
			$this->strTakenDateDateTimeFormat = $strDateTimeFormat;
			$this->lblTakenDate->Text = sprintf($this->objAssetsauditlog->TakenDate) ? $this->objAssetsauditlog->TakenDate->__toString($this->strTakenDateDateTimeFormat) : null;
			return $this->lblTakenDate;
		}

		protected $strTakenDateDateTimeFormat;


		/**
		 * Create and setup QDateTimePicker calActualReturnDate
		 * @param string $strControlId optional ControlId to use
		 * @return QDateTimePicker
		 */
		public function calActualReturnDate_Create($strControlId = null) {
			$this->calActualReturnDate = new QDateTimePicker($this->objParentObject, $strControlId);
			$this->calActualReturnDate->Name = QApplication::Translate('Actual Return Date');
			$this->calActualReturnDate->DateTime = $this->objAssetsauditlog->ActualReturnDate;
			$this->calActualReturnDate->DateTimePickerType = QDateTimePickerType::Date;
			return $this->calActualReturnDate;
		}

		/**
		 * Create and setup QLabel lblActualReturnDate
		 * @param string $strControlId optional ControlId to use
		 * @param string $strDateTimeFormat optional DateTimeFormat to use
		 * @return QLabel
		 */
		public function lblActualReturnDate_Create($strControlId = null, $strDateTimeFormat = null) {
			$this->lblActualReturnDate = new QLabel($this->objParentObject, $strControlId);
			$this->lblActualReturnDate->Name = QApplication::Translate('Actual Return Date');
			$this->strActualReturnDateDateTimeFormat = $strDateTimeFormat;
			$this->lblActualReturnDate->Text = sprintf($this->objAssetsauditlog->ActualReturnDate) ? $this->objAssetsauditlog->ActualReturnDate->__toString($this->strActualReturnDateDateTimeFormat) : null;
			return $this->lblActualReturnDate;
		}

		protected $strActualReturnDateDateTimeFormat;


		/**
		 * Create and setup QDateTimePicker calRealReturnDate
		 * @param string $strControlId optional ControlId to use
		 * @return QDateTimePicker
		 */
		public function calRealReturnDate_Create($strControlId = null) {
			$this->calRealReturnDate = new QDateTimePicker($this->objParentObject, $strControlId);
			$this->calRealReturnDate->Name = QApplication::Translate('Real Return Date');
			$this->calRealReturnDate->DateTime = $this->objAssetsauditlog->RealReturnDate;
			$this->calRealReturnDate->DateTimePickerType = QDateTimePickerType::Date;
			$this->calRealReturnDate->Required = true;
			return $this->calRealReturnDate;
		}

		/**
		 * Create and setup QLabel lblRealReturnDate
		 * @param string $strControlId optional ControlId to use
		 * @param string $strDateTimeFormat optional DateTimeFormat to use
		 * @return QLabel
		 */
		public function lblRealReturnDate_Create($strControlId = null, $strDateTimeFormat = null) {
			$this->lblRealReturnDate = new QLabel($this->objParentObject, $strControlId);
			$this->lblRealReturnDate->Name = QApplication::Translate('Real Return Date');
			$this->strRealReturnDateDateTimeFormat = $strDateTimeFormat;
			$this->lblRealReturnDate->Text = sprintf($this->objAssetsauditlog->RealReturnDate) ? $this->objAssetsauditlog->RealReturnDate->__toString($this->strRealReturnDateDateTimeFormat) : null;
			$this->lblRealReturnDate->Required = true;
			return $this->lblRealReturnDate;
		}

		protected $strRealReturnDateDateTimeFormat;


		/**
		 * Create and setup QTextBox txtFullName
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtFullName_Create($strControlId = null) {
			$this->txtFullName = new QTextBox($this->objParentObject, $strControlId);
			$this->txtFullName->Name = QApplication::Translate('Full Name');
			$this->txtFullName->Text = $this->objAssetsauditlog->FullName;
			$this->txtFullName->Required = true;
			$this->txtFullName->MaxLength = Assetsauditlog::FullNameMaxLength;
			return $this->txtFullName;
		}

		/**
		 * Create and setup QLabel lblFullName
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblFullName_Create($strControlId = null) {
			$this->lblFullName = new QLabel($this->objParentObject, $strControlId);
			$this->lblFullName->Name = QApplication::Translate('Full Name');
			$this->lblFullName->Text = $this->objAssetsauditlog->FullName;
			$this->lblFullName->Required = true;
			return $this->lblFullName;
		}

		/**
		 * Create and setup QTextBox txtTitle
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtTitle_Create($strControlId = null) {
			$this->txtTitle = new QTextBox($this->objParentObject, $strControlId);
			$this->txtTitle->Name = QApplication::Translate('Title');
			$this->txtTitle->Text = $this->objAssetsauditlog->Title;
			$this->txtTitle->Required = true;
			$this->txtTitle->TextMode = QTextMode::MultiLine;
			return $this->txtTitle;
		}

		/**
		 * Create and setup QLabel lblTitle
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblTitle_Create($strControlId = null) {
			$this->lblTitle = new QLabel($this->objParentObject, $strControlId);
			$this->lblTitle->Name = QApplication::Translate('Title');
			$this->lblTitle->Text = $this->objAssetsauditlog->Title;
			$this->lblTitle->Required = true;
			return $this->lblTitle;
		}

		/**
		 * Create and setup QTextBox txtOwner
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtOwner_Create($strControlId = null) {
			$this->txtOwner = new QTextBox($this->objParentObject, $strControlId);
			$this->txtOwner->Name = QApplication::Translate('Owner');
			$this->txtOwner->Text = $this->objAssetsauditlog->Owner;
			$this->txtOwner->Required = true;
			$this->txtOwner->MaxLength = Assetsauditlog::OwnerMaxLength;
			return $this->txtOwner;
		}

		/**
		 * Create and setup QLabel lblOwner
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblOwner_Create($strControlId = null) {
			$this->lblOwner = new QLabel($this->objParentObject, $strControlId);
			$this->lblOwner->Name = QApplication::Translate('Owner');
			$this->lblOwner->Text = $this->objAssetsauditlog->Owner;
			$this->lblOwner->Required = true;
			return $this->lblOwner;
		}



		/**
		 * Refresh this MetaControl with Data from the local Assetsauditlog object.
		 * @param boolean $blnReload reload Assetsauditlog from the database
		 * @return void
		 */
		public function Refresh($blnReload = false) {
			if ($blnReload)
				$this->objAssetsauditlog->Reload();

			if ($this->lblId) if ($this->blnEditMode) $this->lblId->Text = $this->objAssetsauditlog->Id;

			if ($this->txtAsin) $this->txtAsin->Text = $this->objAssetsauditlog->Asin;
			if ($this->lblAsin) $this->lblAsin->Text = $this->objAssetsauditlog->Asin;

			if ($this->txtEmail) $this->txtEmail->Text = $this->objAssetsauditlog->Email;
			if ($this->lblEmail) $this->lblEmail->Text = $this->objAssetsauditlog->Email;

			if ($this->calTakenDate) $this->calTakenDate->DateTime = $this->objAssetsauditlog->TakenDate;
			if ($this->lblTakenDate) $this->lblTakenDate->Text = sprintf($this->objAssetsauditlog->TakenDate) ? $this->objAssetsauditlog->TakenDate->__toString($this->strTakenDateDateTimeFormat) : null;

			if ($this->calActualReturnDate) $this->calActualReturnDate->DateTime = $this->objAssetsauditlog->ActualReturnDate;
			if ($this->lblActualReturnDate) $this->lblActualReturnDate->Text = sprintf($this->objAssetsauditlog->ActualReturnDate) ? $this->objAssetsauditlog->ActualReturnDate->__toString($this->strActualReturnDateDateTimeFormat) : null;

			if ($this->calRealReturnDate) $this->calRealReturnDate->DateTime = $this->objAssetsauditlog->RealReturnDate;
			if ($this->lblRealReturnDate) $this->lblRealReturnDate->Text = sprintf($this->objAssetsauditlog->RealReturnDate) ? $this->objAssetsauditlog->RealReturnDate->__toString($this->strRealReturnDateDateTimeFormat) : null;

			if ($this->txtFullName) $this->txtFullName->Text = $this->objAssetsauditlog->FullName;
			if ($this->lblFullName) $this->lblFullName->Text = $this->objAssetsauditlog->FullName;

			if ($this->txtTitle) $this->txtTitle->Text = $this->objAssetsauditlog->Title;
			if ($this->lblTitle) $this->lblTitle->Text = $this->objAssetsauditlog->Title;

			if ($this->txtOwner) $this->txtOwner->Text = $this->objAssetsauditlog->Owner;
			if ($this->lblOwner) $this->lblOwner->Text = $this->objAssetsauditlog->Owner;

		}



		///////////////////////////////////////////////
		// PROTECTED UPDATE METHODS for ManyToManyReferences (if any)
		///////////////////////////////////////////////





		///////////////////////////////////////////////
		// PUBLIC ASSETSAUDITLOG OBJECT MANIPULATORS
		///////////////////////////////////////////////

		/**
		 * This will save this object's Assetsauditlog instance,
		 * updating only the fields which have had a control created for it.
		 */
		public function SaveAssetsauditlog() {
			try {
				// Update any fields for controls that have been created
				if ($this->txtAsin) $this->objAssetsauditlog->Asin = $this->txtAsin->Text;
				if ($this->txtEmail) $this->objAssetsauditlog->Email = $this->txtEmail->Text;
				if ($this->calTakenDate) $this->objAssetsauditlog->TakenDate = $this->calTakenDate->DateTime;
				if ($this->calActualReturnDate) $this->objAssetsauditlog->ActualReturnDate = $this->calActualReturnDate->DateTime;
				if ($this->calRealReturnDate) $this->objAssetsauditlog->RealReturnDate = $this->calRealReturnDate->DateTime;
				if ($this->txtFullName) $this->objAssetsauditlog->FullName = $this->txtFullName->Text;
				if ($this->txtTitle) $this->objAssetsauditlog->Title = $this->txtTitle->Text;
				if ($this->txtOwner) $this->objAssetsauditlog->Owner = $this->txtOwner->Text;

				// Update any UniqueReverseReferences (if any) for controls that have been created for it

				// Save the Assetsauditlog object
				$this->objAssetsauditlog->Save();

				// Finally, update any ManyToManyReferences (if any)
			} catch (QCallerException $objExc) {
				$objExc->IncrementOffset();
				throw $objExc;
			}
		}

		/**
		 * This will DELETE this object's Assetsauditlog instance from the database.
		 * It will also unassociate itself from any ManyToManyReferences.
		 */
		public function DeleteAssetsauditlog() {
			$this->objAssetsauditlog->Delete();
		}		



		///////////////////////////////////////////////
		// PUBLIC GETTERS and SETTERS
		///////////////////////////////////////////////

		/**
		 * Override method to perform a property "Get"
		 * This will get the value of $strName
		 *
		 * @param string $strName Name of the property to get
		 * @return mixed
		 */
		public function __get($strName) {
			switch ($strName) {
				// General MetaControlVariables
				case 'Assetsauditlog': return $this->objAssetsauditlog;
				case 'TitleVerb': return $this->strTitleVerb;
				case 'EditMode': return $this->blnEditMode;

				// Controls that point to Assetsauditlog fields -- will be created dynamically if not yet created
				case 'IdControl':
					if (!$this->lblId) return $this->lblId_Create();
					return $this->lblId;
				case 'IdLabel':
					if (!$this->lblId) return $this->lblId_Create();
					return $this->lblId;
				case 'AsinControl':
					if (!$this->txtAsin) return $this->txtAsin_Create();
					return $this->txtAsin;
				case 'AsinLabel':
					if (!$this->lblAsin) return $this->lblAsin_Create();
					return $this->lblAsin;
				case 'EmailControl':
					if (!$this->txtEmail) return $this->txtEmail_Create();
					return $this->txtEmail;
				case 'EmailLabel':
					if (!$this->lblEmail) return $this->lblEmail_Create();
					return $this->lblEmail;
				case 'TakenDateControl':
					if (!$this->calTakenDate) return $this->calTakenDate_Create();
					return $this->calTakenDate;
				case 'TakenDateLabel':
					if (!$this->lblTakenDate) return $this->lblTakenDate_Create();
					return $this->lblTakenDate;
				case 'ActualReturnDateControl':
					if (!$this->calActualReturnDate) return $this->calActualReturnDate_Create();
					return $this->calActualReturnDate;
				case 'ActualReturnDateLabel':
					if (!$this->lblActualReturnDate) return $this->lblActualReturnDate_Create();
					return $this->lblActualReturnDate;
				case 'RealReturnDateControl':
					if (!$this->calRealReturnDate) return $this->calRealReturnDate_Create();
					return $this->calRealReturnDate;
				case 'RealReturnDateLabel':
					if (!$this->lblRealReturnDate) return $this->lblRealReturnDate_Create();
					return $this->lblRealReturnDate;
				case 'FullNameControl':
					if (!$this->txtFullName) return $this->txtFullName_Create();
					return $this->txtFullName;
				case 'FullNameLabel':
					if (!$this->lblFullName) return $this->lblFullName_Create();
					return $this->lblFullName;
				case 'TitleControl':
					if (!$this->txtTitle) return $this->txtTitle_Create();
					return $this->txtTitle;
				case 'TitleLabel':
					if (!$this->lblTitle) return $this->lblTitle_Create();
					return $this->lblTitle;
				case 'OwnerControl':
					if (!$this->txtOwner) return $this->txtOwner_Create();
					return $this->txtOwner;
				case 'OwnerLabel':
					if (!$this->lblOwner) return $this->lblOwner_Create();
					return $this->lblOwner;
				default:
					try {
						return parent::__get($strName);
					} catch (QCallerException $objExc) {
						$objExc->IncrementOffset();
						throw $objExc;
					}
			}
		}

		/**
		 * Override method to perform a property "Set"
		 * This will set the property $strName to be $mixValue
		 *
		 * @param string $strName Name of the property to set
		 * @param string $mixValue New value of the property
		 * @return mixed
		 */
		public function __set($strName, $mixValue) {
			try {
				switch ($strName) {
					// Controls that point to Assetsauditlog fields
					case 'IdControl':
						return ($this->lblId = QType::Cast($mixValue, 'QControl'));
					case 'AsinControl':
						return ($this->txtAsin = QType::Cast($mixValue, 'QControl'));
					case 'EmailControl':
						return ($this->txtEmail = QType::Cast($mixValue, 'QControl'));
					case 'TakenDateControl':
						return ($this->calTakenDate = QType::Cast($mixValue, 'QControl'));
					case 'ActualReturnDateControl':
						return ($this->calActualReturnDate = QType::Cast($mixValue, 'QControl'));
					case 'RealReturnDateControl':
						return ($this->calRealReturnDate = QType::Cast($mixValue, 'QControl'));
					case 'FullNameControl':
						return ($this->txtFullName = QType::Cast($mixValue, 'QControl'));
					case 'TitleControl':
						return ($this->txtTitle = QType::Cast($mixValue, 'QControl'));
					case 'OwnerControl':
						return ($this->txtOwner = QType::Cast($mixValue, 'QControl'));
					default:
						return parent::__set($strName, $mixValue);
				}
			} catch (QCallerException $objExc) {
				$objExc->IncrementOffset();
				throw $objExc;
			}
		}
	}
?>